package edu.suda.cxtz.service;

import edu.suda.cxtz.entity.User;
import edu.suda.cxtz.entity.dto.UserDto;
import edu.suda.cxtz.entity.dto.UserLoginDto;
import edu.suda.cxtz.entity.dto.UserQueryCriteria;

import edu.suda.cxtz.utils.PageResult;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Set;

public interface UserService {
    // 根据id查询用户
    UserDto findById(long id);

    UserDto findByName(String name);

    // 创建用户
    void create(User resources);

    // 更新用户
    void update(User resources) throws Exception;

    // 删除用户
    void delete(Set<Long> ids);

    // 根据用户名获取登录数据
    UserLoginDto getLoginData(String Name);

    // 更新密码
    void updatePass(String username, String encryptPassword);

    // 更新邮箱
    void updateEmail(String username, String email);

    // 查询所有用户
    PageResult<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable) throws Exception;

    // List<UserDto> queryAll(UserQueryCriteria criteria, Pageable pageable);
    List<UserDto> queryAll();

    // 更新中心
    void updateCenter(User resources);

    // 重置密码
    void resetPwd(Set<Long> ids, String pwd);
}
